package com.yixia.system.service.system;


import com.baomidou.mybatisplus.extension.service.IService;
import com.yixia.common.core.domain.AjaxResult;
import com.yixia.common.core.domain.entity.SysDictData;
import com.yixia.common.core.domain.entity.SysDictType;
import com.yixia.common.utils.page.PageBean;

import java.util.List;

/**
* @author 35038
* @description 针对表【sys_dict_type(字典类型表)】的数据库操作Service
* @createDate 2023-07-18 10:36:39
*/
public interface SysDictTypeService extends IService<SysDictType> {

    /**
     * 进行分页查询
     * @param pageBean 分页条件
     * @param dictType 查询条件
     * @return 结果
     */
    AjaxResult selectDictDataPage(PageBean pageBean, SysDictType dictType);

    /**
     * 根据id来查询详细信息
     * @param dictId
     * @return
     */
    SysDictType selectDictTypeById(Long dictId);

    /**
     * 新增保存字典类型信息
     *
     * @param dict 字典类型信息
     * @return 结果
     */
    public boolean insertDictType(SysDictType dict);


    /**
     * 校验字典类型称是否唯一
     *
     * @param dictType 字典类型
     * @return 结果
     */
    boolean checkDictTypeUnique(SysDictType dictType);

    /**
     * 修改字典信息
     * @param dict
     * @return
     */
    boolean updateDictType(SysDictType dict);

    /**
     * 根据id删除字典类型
     * @param dictIds
     */
    void deleteDictTypeByIds(Long[] dictIds);

    /**
     * 根据所有字典类型
     *
     * @return 字典类型集合信息
     */
    List<SysDictType> selectDictTypeAll();

    /**
     * 根据字典类型查询字典数据
     */
    List<SysDictData> selectDictDataByType(String dictType);

    /**
     * 刷新字典缓存
     */
    public void resetDictCache();


    /**
     * 加载字典缓存数据
     */
    public void loadingDictCache();

    /**
     * 清空字典缓存数据
     */
    public void clearDictCache();
}
